home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-09-01 | 1.8 KB | 42 lines | [TEXT/GEOL] |
- Item 2737470 31-Aug-89 15:22
-
- From: BIANCHI1 Bianchi, Curt,APL
-
- To: SW0075 SWV VTS Transportation Systems, GBG
-
- cc: MACAPP.TECH$ MACAPP Tech
-
- Sub: Re: MacApp Memory management
-
- Bo and Dan,
-
- In MacApp, the terms "temporary" and "permanent" refer to memory requests, not
- to different parts of the memory space. It has nothing to do with the location
- of objects within the heap. There isn't a temporary space and a permanent
- space. MacApp does not divide the heap into two pieces. There's just one big
- heap.
-
- The difference between a temporary request (e.g., code) and a permanent one
- (e.g., your data) lies in how MacApp's GrowZone function works. When the heap
- is so full that a request cannot be satisfied, the Memory Manager calls
- MacApp's GrowZone function. MacApp keeps a list of handles that it can purge
- from memory on temporary requests, but cannot be purged on a permanent request.
- In addition, a handle is allocated to reserve space in the heap for future
- temporary requests. The idea is to ensure that there is always enough space in
- the heap to satisfy a temporary (e.g., code) request.
-
- The net effect is that MacApp can control which requests succeed and which ones
- fail. Hopefully there is always enough space reserved so that any temporary
- request will succeed. This is the purpose of the 'seg!' and 'mem!' resources.
- As the heap fills up, permanent requests will eventually fail while temporary
- requests continue to work. This is because MacApp has reserved space for the
- temporary requests, and its GrowZone function only frees the space on temporary
- requests and not on permanent ones.
-
- So, moving handles high and locking them doesn't affect temporary and permanent
- memory requests. Hope this helps.
-
- Curt Bianchi
- Apple Computer
-
-